package com.zjmzxfzhl.modules.app.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zjmzxfzhl.common.core.base.BaseService;
import com.zjmzxfzhl.modules.app.entity.AppModi;
import com.zjmzxfzhl.modules.app.entity.AppProdVer;
import com.zjmzxfzhl.modules.app.form.AppDocVo;
import com.zjmzxfzhl.modules.app.form.AppProdVerVo;
import com.zjmzxfzhl.modules.app.form.AppProdVo;

import java.util.List;

/**
 * Service
 * 
 * @author 张森荣
 */
public interface AppProdVerService extends BaseService<AppProdVer> {
    /**
     * 分页查询
     * 
     * @param page
     * @param appProdVerVo
     * @return
     */
    IPage<AppProdVerVo> list(IPage<AppProdVerVo> page, AppProdVerVo appProdVerVo);
    /**
     * 分页查询
     *
     * @param page
     * @param appProdVerVo
     * @return
     */
    List<AppProdVerVo> getList(IPage<AppProdVerVo> page, AppProdVerVo appProdVerVo);
    /**
     * 根据id查询
     *
     * @return
     */
    AppProdVerVo queryById(String id);

    /**
     * 变更发布状态（待审批）
     *
     * @return
     */
    boolean pendingTrial(String verId);
    /**
     * 变更发布状态（审批中）
     *
     * @return
     */
    boolean inReview(String verId);
    /**
     * 变更发布状态（审批过）
     *
     * @return
     */
    boolean reviewed(String verId);
    /**
     * 变更发布状态（已驳回）
     *
     * @return
     */
    boolean reject(String verId);
    /**
     * 变更发布状态（已关闭）
     *
     * @return
     */
    boolean close(String verId);
    /**
     * 启动文档审批流程实例
     *
     * @return
     */
    boolean processStart(String verId);

    /**
     * 查询审核文档
     *
     * @param processInstanceId
     * @return
     */
    List<AppProdVerVo> procProdVer(String processInstanceId);


    /**
     * 新增项目，自动计算机构级别、机构级次码、是否叶子
     *
     * @param appProdVer
     * @return
     */
    boolean saveAppProdVer(AppProdVer appProdVer);

    /**
     * 计算数量
     *
     * @param appProdVerVo
     * @return
     */
    Integer selectRowCount(AppProdVerVo appProdVerVo);
}
